package net.stogi.unicore.beyond.ui.client.taskeditor.taskpreview;

import net.stogi.common.mvp.core.behavior.BehaviorWithValue;
import net.stogi.unicore.beyond.api.model.InputDefinition;
import net.stogi.unicore.beyond.api.model.OutputDefinition;

interface TaskPreviewView {

	int addInputDefinition(InputDefinition inputDefinition, int inputGroupIndex);

	int addInputGroup(String name);
	
	int addOutputDefinition(OutputDefinition outputDefinition, int outputGroupIndex);
	
	int addOutputGroup(String name);
	
	void appear();
	
	void clear();
	
	String collectApplicationDescription();

	String collectApplicationName();
	
	String collectApplicationVersion();

	int collectSelectedInputGroup();

	int collectSelectedOutputGroup();

	void disappear();
	
	void displayApplicationDescription(String applicationDescription);

	void displayApplicationName(String applicationName);

	void displayApplicationVersion(String applicationVersion);

	boolean isInputPanelVisible();

	boolean isOutputPanelVisible();

	void selectInputGroup(int index);

	void selectOutputGroup(int index);

	void setCloseBehavior(BehaviorWithValue<Boolean> behavior);

	void showInputSection();

	void showOutputSection();
}
